#  递归统计目录的大小


import os

size = 0                               # 定义一个全局变量

def sum_file(file):
    '''
    获取文件的大小
    :param file: file name
    :return:file size
    '''
    return os.path.getsize(file)

def sum_dir(dir):
    '''
    统计目录下文件大小的总和，包括子目录的文件
    :param dir:
    :return: size of all files
    '''
    global size                        # (避免清零)
    drlist = os.listdir(dir)           # 获取目录中的所有文件
    for file in drlist:                # 遍历取文件
        file = os.path.join(dir,file)  # 遍历文件时将文件放在目录路径后（归属与这个目录）
        if os.path.isfile(file):
            count = sum_file(file)
            size += count              # 累加文件大小
        if os.path.isdir(file):
            sum_dir(file)              # 调用自身，判断参数是目录/文件，循环直至为文件
    return size 

print(sum_dir("/Users/lizhihao/Desktop/Python"))